Skip to main content

Bank Account - ARS

Introduction

This section covers ARS (Argentine Peso) on-ramp specifics. ARS deposits flow through Mural Pay's ARS Bank Transfer Payin Intent — a per-payment, amount + source-account-locked transfer to a destination CVU returned at ticket creation time.

Unlike COP (which exposes a Bre-B Info utility for key validation), ARS does not have a separate look-up endpoint. All on-ramp parameters — destination CVU, bank name, expiration window, and amount lock — are returned in the ticket creation response, so there is no separate "validate" step to perform before creating the ticket.

How an ARS deposit works

  1. Quote a fixed-rate ARS → token conversion (e.g. inputCurrency=ARS&inputPaymentMethod=BANK-TRANSFER&outputCurrency=USDC).
  2. Create a ticket and pass ticketArsInput.senderAccountNumber — the CVU or CBU the payer will send from (22 digits). The pay-in is locked to that source account; transfers from any other account are rejected by Mural.
  3. Receive deposit instructions in the ticket response: cvu (the destination CVU), bankName (the bank holding the CVU), and expiration.
  4. Show those instructions to the end-user in your UI. The user opens their banking app and sends the exact ARS amount to the destination CVU from the registered source account.
  5. Webhook fires payin_status_changed = COMPLETED when Mural sees the deposit; the ticket transitions to PAID and the user is credited net of fees.
warning

Amount + source-account locked. Mural rejects any inbound transfer that doesn't match the exact amount AND doesn't originate from the senderAccountNumber you registered. Mismatched payments are not auto-refunded — they are bounced back by the bank.

Ticket creation request body

For ARS on-ramp tickets, the payload below extends the standard ticket request:

curl -X POST "https://api.sandbox.avenia.io:10952/v2/account/tickets/" \
-H "Authorization: Bearer eyJhdXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
-H "Content-Type: application/json" \
-d '{
"quoteToken": "eyJhdXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"ticketArsInput": {
"senderAccountNumber": "0000003100010000000001"
},
"ticketBlockchainOutput": {
"walletAddress": "0xabcdefabcdefabcdefabcdefabcdefabcdefabcd"
}
}'
FieldTypeRequiredValidationDescription
ticketArsInput.senderAccountNumberstringYesExactly 22 digitsThe payer's source CVU or CBU. Mural source-locks the pay-in to this account; transfers from any other account are rejected.

Ticket creation response (ARS-specific fields)

In addition to the standard id field, ARS tickets return the destination CVU instructions:

{
"id": "9355e9b9-9637-4dba-8ce5-09c6ce3b92c2",
"cvu": "0000003100010000000001",
"bankName": "Banco de la Nación Argentina",
"expiration": "2026-06-22T16:30:10.888356802Z"
}
FieldTypeDescription
idstring (UUID)Ticket identifier.
cvustringThe destination CVU the payer must transfer ARS to.
bankNamestringName of the Argentine bank holding the destination CVU.
expirationtimestampISO 8601. After this, the pay-in window closes; the user must create a new ticket. Default window is 30 minutes.

Errors

StatusMessageWhen
400ticketArsInput.senderAccountNumber is invalidField is missing, not 22 digits, or contains non-digit characters.
400ARS KYC must be approved before creating ARS ticketsUser has not completed ARS KYC (arsUnlocked = false). See KYC - ARS.

Conclusion

You now have the necessary understanding to create ARS on-ramp tickets, display the destination CVU instructions to your end-user, and consume the resulting deposit through the Mural ARS Bank Transfer Payin Intent flow.